#include <jsoncpp/json/json.h>
#include <iostream>
#include <string>
#include <memory>
#include <sstream>

struct Student
{
    std::string name;
    int age;
};

int main()
{
    Student s1 = {"小王", 18};
    Json::Value root;
    root["n"] = s1.name;
    root["a"] = s1.age;
    // std::cout<<root.toStyledString()<<std::endl;
    // Json::StreamWriterBuilder wb;
    //
    // std::unique_ptr<Json::StreamWriter> writer(wb.newStreamWriter());
    // std::stringstream ss;
    //  writer->write(root,&ss);
    //  std::cout<<ss.str()<<std::endl;
    // return 0;

    Json::FastWriter writer1;
    Json::StyledWriter writer2;
    std::cout<< writer1.write(root)<<"\n";
    std::cout<< writer2.write(root);

    
}

// int main()
// {
//     //1.序列化
//     // Json::Value root;
//     // root["name"]="lisi";
//     // root["age"]="13";
//     // root["sex"]="男";
//     // std::string str= root.toStyledString();
//     // std::cout<<str<<std::endl;

//     //2.
// //      Json::Value root;
// //     root["name"]="lisi";
// //     root["age"]="13";
// //     root["sex"]="男";
// //     //相当于工厂用来初始化我们的wirter
// //    Json::StreamWriterBuilder wb;
// //    std::unique_ptr<Json::StreamWriter> wirter(wb.newStreamWriter());
// //    std::stringstream ss;
// //    wirter->write(root,&ss);
// //    std::cout<<ss.str()<<std::endl;

// //3.
//     //  Json::Value root;
//     // root["name"]="lisi";
//     // root["age"]="13";
//     // root["sex"]="男";

//     // Json::FastWriter wirter1;
//     // std::cout<<wirter1.write(root)<<std::endl;

//     // Json::StyledWriter wirter2;
//     // std::cout<<wirter2.write(root)<<std::endl;

//     return 0;
// }